package com.ht.demo.dao.dao.system;

import com.ht.demo.common.pojo.qto.system.SysMenuQTO;
import com.ht.demo.dao.domain.system.SysMenuDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 菜单权限表 DAO接口
 * 
 * @Author hdx
 * @Date 2023年04月28日
 */
@Mapper 
public interface SysMenuDao {

    /**
     * 
     * 方法insert的功能描述：新增菜单权限表
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2023年04月28日
     * </PRE>
     */
    int insert(SysMenuDO record);

    /**
     * 
     * 方法deleteById的功能描述：根据Id删除菜单权限表
     * 
     * @param id
     * @return int
     * <PRE>
     * author hdx 
     * Date 2023年04月28日
     * </PRE>
     */
    int deleteById(Long id);

    /**
     * 
     * 方法updateById的功能描述：根据Id更新菜单权限表
     * 
     * @param record
     * @return int
     * <PRE>
     * author hdx 
     * Date 2023年04月28日
     * </PRE>
     */
    int updateById(SysMenuDO record);

    /**
     * 
     * 方法findById的功能描述：根据Id查询菜单权限表
     * 
     * @param id
     * @return SysMenuDO
     * <PRE>
     * author hdx 
     * Date 2023年04月28日
     * </PRE>
     */
    SysMenuDO findById(Long id);

    List<SysMenuDO> findByCondition(SysMenuDO record);

    Integer findForPageCount(SysMenuQTO qto);
    List<SysMenuDO> findForPage(SysMenuQTO qto);

    List<SysMenuDO> findMenuByIds(@Param("dataList") List<Long> dataList);

    Set<String> findPermByIds(@Param("menuIds") List<Long> menuIds);

    List<SysMenuDO> findAll();
}